package com.finapps.stopspend;

import java.text.DecimalFormat;
import java.util.Calendar;
import java.util.Map;

import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;

import com.finapps.stopspend.adapter.ObjetivosAdapter;
import com.finapps.stopspend.dao.Database;
import com.finapps.stopspend.dao.ObjectiusDAO;
import com.finapps.stopspend.entidades.BarraSuperior;
import com.finapps.stopspend.entidades.ObjetivoEntity;
import com.finapps.stopspend.entidades.SituacioActual;
import com.finapps.stopspend.entidades.SituacioObjectiu;
import com.finapps.stopspend.entidades.SituacioObjectiu.ColorSituacio;
import com.finapps.stopspend.serveis.SituacioActualService;
import com.finapps.stopspend.serveis.SituacioActualService.MetodeCalcul;

public class StopSpendActivity extends ActivityConMenu {

	private static final String TAG = "STOP";
	private static int REQUEST_CODE = 0;
	private Drawable shape_verde;
	private Drawable shape_naranja;
	private Drawable shape_rojo;
	private Drawable semaforo_verde;
	private Drawable semaforo_naranja;
	private Drawable semaforo_rojo;
	private ListView lista;
	private ImageView semaforo;
	private TextView main_estalvi;
	private TextView main_saldo;
	private LinearLayout layoutPrincipal;
	private SituacioActual situacio;
    private SharedPreferences valores;
    private SharedPreferences.Editor editor;

    private SituacioActualService situacioActualService=new SituacioActualService();
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
//        Intent service = new Intent(this,UpdateService.class);
//		startService(service);
        semaforo = (ImageView) findViewById(R.id.main_semafor);
        
        BarraSuperior barra = (BarraSuperior) findViewById (R.id.barraSuperior1);
        
        ImageButton boton = barra.getBtn1();
        
        boton.setOnClickListener(new OnClickListener()
        {
        	public void onClick(View v)
        	{
        		startActivityForResult(new Intent(StopSpendActivity.this, AnadirNuevoActivity.class), REQUEST_CODE);
        	}
        });
        
        lista = (ListView) findViewById(R.id.lista);
        
        layoutPrincipal = (LinearLayout) findViewById (R.id.layoutPrincipal);
        
        Resources res = getResources();

        shape_verde = res.getDrawable(R.drawable.shape_fondo_v);
        shape_naranja = res.getDrawable(R.drawable.shape_fondo_n);
        shape_rojo = res.getDrawable(R.drawable.shape_fondo_r);

        semaforo_verde = res.getDrawable(R.drawable.verde);
        semaforo_naranja = res.getDrawable(R.drawable.amarillo);
        semaforo_rojo = res.getDrawable(R.drawable.rojo);

        main_saldo = (TextView) findViewById(R.id.main_saldo);
        main_estalvi = (TextView) findViewById(R.id.main_estalvi);        
    	
        Database db = Database.get();
        db.open();
        if(db!=null){
        	db.close();
        }
	}

	@Override
	protected void onResume() {
		super.onResume();

//		 SituacioActual situacio=situacioActualService.calcularSituacioActual(Calendar.getInstance(),MetodeCalcul.MITJANA_MESOS);
//         // guardar a la base de dades
//         DecimalFormat df = new DecimalFormat("########0.00");
//
//         ObjectiusDAO oDao = new ObjectiusDAO();
//
//         for(Map.Entry<ObjetivoEntity, SituacioObjectiu> entry:situacio.getObjectius().entrySet()) {
//         	ObjetivoEntity obj = entry.getKey();
//         	obj.setColorSituacio(entry.getValue().getColorSituacio());
//         	obj.setDinersFaltenTotal(entry.getValue().getDinersFaltenTotal());
//         	oDao.saveObjectiu(obj);
//         }
//		
//        main_saldo.setText(df.format(situacio.getSaldo()));
//
//        main_estalvi.setText(df.format(situacio.getEstalvi()));
//      
		
        colorFondo(ColorSituacio.VERD);
		actualizar();
	}
	
	private void colorFondo(ColorSituacio color) {
        
        switch (color)
        {
        case VERD:
                layoutPrincipal.setBackgroundDrawable(shape_verde);
                semaforo.setImageDrawable(semaforo_verde);

                break;
        case GROC:
        case TARONJA:
                layoutPrincipal.setBackgroundDrawable(shape_naranja);
                semaforo.setImageDrawable(semaforo_naranja);
                break;

        case VERMELL:
                layoutPrincipal.setBackgroundDrawable(shape_rojo);
                break;
        }
}
	
	private void actualizar()
	{
		ObjectiusDAO oDao = new ObjectiusDAO();
		
        ObjetivosAdapter adapter = new ObjetivosAdapter(this, R.layout.row_objeto, oDao.getObjectius());
        
        lista.setAdapter(adapter);
	}
}
